Free Access Week - Data Engineering + BI
Data Engineering and BI courses are free this week!
Free Access Week - Jun 2-8

pbdMPI (version 0.2-2)

global sort function: Global Quick Sort for Distributed Vectors or Matrices

Description

This function globally sorts distributed data for all ranks.

Usage

comm.sort(x, decreasing = FALSE, na.last = NA,
            comm = .SPMD.CT$comm, status = .SPMD.CT$status)

Arguments

x
a vector.
decreasing
logical. Should the sort order be increasing or decreasing?
na.last
for controlling the treatment of NAs. If TRUE, missing values in the data are put last; if FALSE, they are put first; if NA, they are removed.
comm
a communicator number.
status
a status number.

Value

  • The returns are the same size of x but in global sorting order.

Warning

All ranks should not have a NULL x.

Details

The distributed quick sort is implemented for this functions.

References

Programming with Big Data in R Website: http://r-pbd.org/

Examples

Run this code
# Save code in a file "demo.r" and run with 2 processors by
# > mpiexec -np 2 Rscript demo.r

### Initial
library(pbdMPI, quietly = TRUE)
init()
.comm.size <- comm.size()
.comm.rank <- comm.rank()

### Examples
comm.set.seed(diff = TRUE)
x <- c(rnorm(5 + .comm.rank * 2), NA)
# x <- sample(1:5, 5 + .comm.rank * 2, replace = TRUE)
comm.end.seed()

if(.comm.rank == 1){
  x <- NULL    ### Test for NULL or 0 vector.
}

y <- allgather(x)
comm.print(y)

y <- comm.sort(x)
y <- allgather(y)
comm.print(y)

### Finish
finalize()

Run the code above in your browser using DataLab